/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* E.P. Scene Graph
* Developed by:
*       - Eduardo Ribeiro (eribeiro @ tecgraf . puc-rio . br)
*       - Peter Dam (peter @ tecgraf . puc-rio . br)
* File: MouseManipulator.h
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

#ifndef _EPSG_MOUSEMANIPULATOR_
#define _EPSG_MOUSEMANIPULATOR_

#include "EPSG/Vec3.h"
#include "EPSG/Prototypes.h"
#include "EPSG/Manipulator.h"

namespace EPSG
{
	class MouseManipulator : public Manipulator
	{
	public:
		/* [CONSTRUCTOR] */	MouseManipulator( EPSG::Camera* camera );

		virtual bool		apply( int button, int state, int x, int y );
		virtual bool		apply( int x, int y );

	private:
		Vec3<float>			map( int x, int y );
		int					_button;
		int					_state;
		int					_x0;
		int					_y0;
	};
}

#endif //_EPSG_MOUSEMANIPULATOR_